home *** CD-ROM | disk | FTP | other *** search
- /* -*-C-*- movedown.h */
- /*-->movedown*/
- /**********************************************************************/
- /****************************** movedown ******************************/
- /**********************************************************************/
-
- void
- movedown(a)
- register INT32 a;
-
- {
- /* From DVITYPE Version 2.6:
- "Vertical motion is done similarly [to horizontal motion handled
- in moveover()], but with the threshold between ``small'' and
- ``large'' increased by a factor of five. The idea is to make
- fractions like ``1/2'' round consistently, but to absorb
- accumulated rounding errors in the baseline-skip moves."
-
- The one precaution we need to take here is that fontptr can be
- NULL, which we treat like a large movement. This NULL pointer
- was used without error on many different machines for 2 years
- before it was caught on the VAX VMS implementation, which makes
- memory page 0 inaccessible.
- */
- v += a;
- if ((fontptr == (struct font_entry *)NULL) ||
- (ABS(a) >= 5*fontptr->font_space))
- vv = PIXROUND(v, conv) + tmargin;
- else
- {
- vv += PIXROUND(a, conv);
- vv = fixpos(vv-tmargin,v,conv) + tmargin;
- }
- }
-
-